#include <typescommon.h>
#include <inttypes.h>

// 浮点数的存储是由符号位(1位) + 指数位(8位) + 小数位(23位) 组成。
// 符号位：正负。0是正
// 指数位：-128到127，符合char方式，但是需要+127.
// 小数位：二进制的小数位，（1.小数位）格式保存。

// -27.65625f
// 负数：符号位填1.
// 正数部分：11011.
// 负数部分：
// 0.65625-0.5(2^-1) = 0.15625；填1
// 0.15625 - 0.25(2^-2) = 减不了；填0
// 0.15625 - 0.125(2^-3) = 0.03125；填1
// 0.03125 - 0.0625(2^-4) = 减不了;填0
// 0.03125 - 0.03125(2^-5) = 0;填1
// 负数结束。
// -27.65625f 二进制应该表示为：-11011.10101
// 数据二进制需要：1.101110101 左移4位即可。其中正数部分的1负略。
// 101110101保存在小数位
// 指数位填4，需要加127.得到10000011
// 最终得到 (1 [100) 0001 (1] 101) 1101 0100 0000 0000 0000

void printFloat(float val)
{
    uint8_t *tmpptr = (uint8_t *)&val;
    logdebug("float=%f,mem=0x%02x%02x%02x%02x", val, tmpptr[3], tmpptr[2], tmpptr[1], tmpptr[0]);
}

int main(int argc, char **argv)
{
    printFloat(-27.65625);
    printFloat(0.875f);
    // printFloat(1000);
    // printFloat(123.456f);
    // printFloat(-54.321f);
    // printFloat(0.783f);
    return 1;
}



